An embedded system refers to a system configured with a mechanism configuring a control target, hardware that performs a control operation based on a physical quantity received from the mechanism, and outputs a controls value to the mechanism, and software operating on the hardware.
For example, an embedded system for an automotive engine control is configured with a mechanism such as an engine serving as a control target, an electronic device such as a microcontroller that performs a control operation and controls the engine or the like, and software operating on the microcontroller or the like.
Behavior of the software included in the embedded system strongly depends on configurations of the mechanism serving as the control target and the hardware, and thus it is necessary to perform behavior analysis in light of all of the mechanism, the hardware, and the software.
In recent years, as automobiles, electrical equipment, and the like pursue high and high functionality, an embedded system has been more complicated, and in order to reduce a work period of time, parts of hardware, and software are segmented, division of labor is performed, and simultaneous development is performed at multiple locations.
When the division of labor progresses, deficiency in performance or nonconformity of a specification which is found at the time of operation check of each part of assembly of a part increases, and a development period of time is frequently delayed due to return at the final state before a product is shipped, leading to a problem of deterioration in development efficiency.
In order to solve this problem, a performance evaluation verification technique based on a simulation in which a mechanism, hardware, and software are in collaboration at the time of design began to be used.
When performance evaluation and operation verification are performed through the simulation, it is necessary to describe operations of elements configuring a target embedded system to be software executable on a simulator as a simulation model.
In a common form, the simulation model is provided from a company or a department that is in charge of design and manufacture of elements of each of a mechanism and hardware.
System operation verification in which fault injection of a hardware part is considered is expected in such a simulation-based software verification process.
To this verification, in the related art, it is necessary to cause actual hardware to have a fault. However, since it is not possible to incur a fault desired by a user at an arbitrary position at an arbitrary timing, choices of verification that can be applied are very limited.
On the other hand, in the case of the simulation-based technique, fault injection to an arbitrary position is theoretically possible by modeling a desired fault.
In this regard, fault injection to a connection between parts of an electronic system is performed, for example, using a technique disclosed in Patent Document 1.